/*
 * Copyright (c) 2018.
 * http://www.ulabcare.com
 */

package com.mt.roll.upms.service;

import com.mt.roll.core.params.IdListParam;
import com.mt.roll.core.params.IdParam;
import com.mt.roll.core.vo.*;
import com.mt.roll.upms.params.MenuResourceParam;
import com.mt.roll.upms.params.MenuResourceQueryParam;
import com.mt.roll.upms.vo.ResourceVo;

import java.util.List;

/**
 * 菜单资源服务接口
 *
 * @author jiff
 * @date 2018/11/27
 * @since 1.0
 */
public interface MenuResourceService {
    /**
     * 新增菜单资源
     *
     * @param menuResourceParam 菜单资源参数
     * @return 主键
     */
    R<IdListVo> add(MenuResourceParam menuResourceParam);

    /**
     * 删除菜单资源
     *
     * @param idParam 主键参数
     * @return 主键
     */
    R<IdVo> delete(IdParam idParam);

    /**
     * 批量删除菜单资源
     *
     * @param idListParam 主键列表参数
     * @return 主键列表
     */
    R<IdListVo> delete(IdListParam idListParam);

    /**
     * 获取菜单资源列表
     *
     * @param idParam 主键参数
     * @return 菜单资源列表
     */
    R<List<MenuResourceVo>> listByMenu(IdParam idParam);

    /**
     * 获取资源列表
     *
     * @param menuResourceQueryParam 查询参数
     * @return 资源列表
     */
    R<List<ResourceVo>> listWithMenu(MenuResourceQueryParam menuResourceQueryParam);

    /**
     * 获取资源分页列表
     *
     * @param menuResourceQueryParam 查询参数
     * @return 资源分页列表
     */
    R<PageVo<ResourceVo>> pageWithMenu(MenuResourceQueryParam menuResourceQueryParam);

}
